home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
qbbs
/
uo40sbbs.zip
/
UOSYS.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-02-27
|
3KB
|
126 lines
{***************************************************************************
**
** -=( UOsys )=-
** (c) Copyright LiveSystems 1992, 1993
**
** Author : Gerhard Hoogterp
** FidoNet : 2:283/702.2
** 2:512/54.5
** BitNet : HOOGTERPG@HENUT5.BITNET or HOOGTERPG@UTWENTE.NL
**
** SnailMail : Kremersmaten 108
** 7511 LC Enschede
** The Netherlands
**
**
** This unit is part of the UserOn package and may be used freely in
** other programs.
**
** Under no circumstances will the author (me) be held responsible for any
** damage as result of using this library. Use this unit at your own risk!
** Comments and remarks are welcome at one of the above addresses.
**
**
****************************************************************************}
Unit UOSys;
Interface
Uses Dos;
Type UserDoesString = String[75];
UserDoesObject = Object
DoesWhat : UserDoesString; { The string to write }
SemDir : PathStr; { Where to write }
Node : Byte; { The nodenumber }
Name : String[12]; { The UsedDoes filename }
{ Prepare the userdoes object }
Procedure Init( _Node : Byte;
_Does : UserDoesString;
_Where: PathStr);
{ Write the _Does string to the semafore directory }
Procedure SetIt;
{ Change the UserDoes string in the semaphore }
{ directory }
Procedure ReSetIt(_Does : UserDoesString);
{ Remove the UserDoes file }
Procedure ClearIt;
{ Read the UserDoes file from disk }
Procedure GetIt(Def : UserDoesString);
End;
Implementation
Var Tmp : Text;
Function Nr2Str(Nr : Word;Len : Byte):String;
Var Temp : String[20];
Begin
Str(Nr:Len,Temp);
Nr2Str:=Temp;
End;
Procedure UserDoesObject.Init( _Node : Byte;
_Does : UserDoesString;
_Where: PathStr);
Begin
Node:=_Node;
DoesWhat:=_Does;
SemDir:=_Where;
Name:='USERDOES.'+Nr2Str(Node,0);
End;
Procedure UserDoesObject.SetIt;
Begin
Assign(Tmp,SemDir+Name);
Rewrite(Tmp);
WriteLn(Tmp,DoesWhat);
Close(Tmp);
If IoResult<>0
Then;
End;
Procedure UserDoesObject.ReSetIt(_Does : UserDoesString);
Begin
DoesWhat:=_Does;
SetIt;
End;
Procedure UserDoesObject.ClearIt;
Var Try : Byte;
Begin
Try:=3;
Repeat
Assign(Tmp,SemDir+Name);
Erase(Tmp);
If IoResult<>0
Then Dec(Try)
Else Try:=0;
Until Try=0;
End;
Procedure UserDoesObject.GetIt(Def : UserDoesString);
Begin
Assign(Tmp,SemDir+Name);
Reset(Tmp);
If IoResult=0
Then Begin
ReadLn(Tmp,DoesWhat);
Close(Tmp);
End
Else DoesWhat:=Def;
If IoResult<>0
Then;
End;
End.